ফোরট্রানে Custom Error Handling Techniques
ফোরট্রানে Custom Error Handling এমন একটি পদ্ধতি যা প্রোগ্রামারকে নির্দিষ্ট ত্রুটি অবস্থাগুলিকে চিহ্নিত করে এবং সেগুলির উপর ভিত্তি করে কাস্টম সমাধান বা কার্যক্রম গ্রহণ করতে সক্ষম করে। যখন একটি ত্রুটি ঘটে, তখন প্রোগ্রামটি যে ভাবে সাড়া দিবে তা কাস্টমাইজ করা যায়। এটি সাধারণত ERROR HANDLING ব্লক, EXIT, IOSTAT, এবং IOMSG ফাংশনের মাধ্যমে করা হয়।
ফোরট্রানে ত্রুটি হ্যান্ডলিং মূলত I/O অপারেশন, ALLOCATE, DEALLOCATE সহ বিভিন্ন প্রক্রিয়াতে ব্যবহার হয়, যেখানে কোনো ত্রুটি ঘটলে প্রোগ্রামটি থেমে যেতে পারে বা একটি নির্দিষ্ট লেবেলে চলে যেতে পারে।
১. ফোরট্রানে কাস্টম ত্রুটি হ্যান্ডলিং এর জন্য ERR এবং IOSTAT ব্যবহার
ফোরট্রানে ERR এবং IOSTAT কিওয়ার্ডগুলি খুবই কার্যকরী ত্রুটি হ্যান্ডলিংয়ের জন্য। ERR কিওয়ার্ডটি প্রোগ্রামটিকে একটি নির্দিষ্ট লেবেলে পাঠাতে সাহায্য করে, এবং IOSTAT একটি ত্রুটির কোড প্রদান করে, যা নির্দিষ্ট ত্রুটির তথ্য দেয়।
উদাহরণ: ERR এবং IOSTAT ব্যবহার করে কাস্টম ত্রুটি হ্যান্ডলিং
program custom_error_handling
integer :: iunit, ios
character(len=20) :: filename
filename = "non_existent_file.txt"
! ফাইল খোলার চেষ্টা
open(unit=iunit, file=filename, status='old', iostat=ios, err=99)
! যদি ফাইল খোলা না যায়
if (ios /= 0) then
print *, 'Error opening file ', filename
print *, 'IO error code: ', ios
end if
print *, 'File opened successfully.'
close(iunit)
return
99 ! ত্রুটি হলে এখানে চলে আসবে
print *, 'Custom error handling: Unable to open file.'
stop ! প্রোগ্রাম বন্ধ হবে
end program custom_error_handlingব্যাখ্যা:
- এখানে, open কমান্ডের মাধ্যমে ফাইল খোলার চেষ্টা করা হয়েছে। যদি ফাইলটি না খোলা যায় (উদাহরণস্বরূপ, ফাইলটি না থাকলে), IOSTAT ত্রুটির কোড ধারণ করবে এবং ERR কিওয়ার্ডটি 99 লেবেলে প্রোগ্রামটি পাঠাবে।
- 99 লেবেলে ত্রুটি সম্পর্কিত কাস্টম বার্তা প্রিন্ট করা হয় এবং প্রোগ্রাম বন্ধ হয়ে যায়।
IOSTAT এর মানের উদাহরণ:
0: অপারেশন সফলভাবে সম্পন্ন হয়েছে।1: ফাইলের নাম বা অবস্থান ভুল।2: ফাইলটি খোলা যায়নি (অথবা অনুমতি নেই)।
২. IOMSG এবং ERR ব্যবহার করে কাস্টম ত্রুটি বার্তা
IOMSG একটি বিশেষ ধরনের ফাংশন যা ত্রুটির বিস্তারিত বার্তা সরবরাহ করে। এটি ব্যবহার করে আপনি ত্রুটির সঠিক কারণ দেখতে পারেন এবং তারপর একটি কাস্টম বার্তা তৈরি করতে পারেন।
উদাহরণ: IOMSG এবং ERR ব্যবহার করে কাস্টম ত্রুটি বার্তা
program iomsg_error_handling
integer :: iunit, ios
character(len=100) :: errmsg
! ফাইল খোলার চেষ্টা
open(unit=iunit, file="data.txt", status="old", iostat=ios, iomsg=errmsg, err=99)
! যদি ত্রুটি ঘটে
if (ios /= 0) then
print *, 'Error opening file: ', errmsg
else
print *, 'File opened successfully.'
end if
close(iunit)
return
99 ! ত্রুটি হলে এখানে চলে আসবে
print *, 'Custom error handling: ', errmsg
stop ! প্রোগ্রাম বন্ধ হবে
end program iomsg_error_handlingব্যাখ্যা:
- এই উদাহরণে IOMSG ব্যবহার করা হয়েছে যা ত্রুটির বিবরণ সরবরাহ করে। errmsg ভেরিয়েবলটি ত্রুটি বার্তা ধারণ করবে এবং IOSTAT ত্রুটির কোড প্রদান করবে।
৩. EXCEPTION হ্যান্ডলিং এবং STOP কমান্ড ব্যবহার
ফোরট্রানে STOP কমান্ড ব্যবহৃত হয় প্রোগ্রাম থামানোর জন্য। আপনি যদি কোনো সুনির্দিষ্ট ত্রুটির অবস্থায় প্রোগ্রামটি থামাতে চান, তবে STOP কিওয়ার্ড ব্যবহার করা হয়।
উদাহরণ: STOP ব্যবহার করে কাস্টম ত্রুটি হ্যান্ডলিং
program stop_example
integer :: x
print *, 'Enter an integer: '
read *, x
if (x < 0) then
print *, 'Error: Negative number entered.'
stop ! প্রোগ্রাম থামানো হবে
end if
print *, 'You entered: ', x
end program stop_exampleব্যাখ্যা:
- এই প্রোগ্রামে যদি ব্যবহারকারী একটি নেতিবাচক সংখ্যা প্রবেশ করায়, তবে STOP কমান্ডটি ব্যবহার করে প্রোগ্রামটি থামানো হয় এবং একটি কাস্টম ত্রুটি বার্তা দেখানো হয়।
৪. Custom Error Handling এর জন্য ASSERT পদ্ধতি
ফোরট্রানে ASSERT ফাংশনটি সাধারণত ব্যবহার করা হয় কোনো শর্ত পরীক্ষা করার জন্য, এবং যদি শর্ত মেলেনা, তবে একটি ত্রুটি তৈরি করা হয়।
উদাহরণ: ASSERT ব্যবহার করে কাস্টম ত্রুটি হ্যান্ডলিং
program assert_example
integer :: x
print *, 'Enter a positive number: '
read *, x
! ASSERT চেক
if (x < 0) then
print *, 'Error: Negative number entered.'
stop
end if
print *, 'You entered: ', x
end program assert_exampleউপসংহার
ফোরট্রানে Custom Error Handling এর মাধ্যমে আপনি প্রোগ্রামের নির্দিষ্ট ত্রুটি সনাক্ত করে সেগুলির উপর ভিত্তি করে কার্যক্রম নিতে পারেন। ERR, IOSTAT, IOMSG, STOP ইত্যাদি কিওয়ার্ডগুলো ব্যবহার করে আপনি আপনার প্রোগ্রামের মধ্যে কাস্টম ত্রুটি হ্যান্ডলিং প্রক্রিয়া তৈরি করতে পারেন। এই পদ্ধতিগুলো প্রোগ্রামের স্থিতিশীলতা বৃদ্ধি করে এবং ত্রুটির সঠিক কারণ নির্ধারণে সহায়ক হয়।
Read more